The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Computers systems may be configured to store and retrieve large amounts of data. Typically, computer systems rely on database systems to perform this function. Replication is the process of duplicating data from a source database onto another database system, herein referred to as a target database.
One approach to replication is the physical replication approach. Under the physical replication approach, the changes made to data blocks on the source database are made to replicas of those data blocks on a target database. Because the source database is replicated at the lowest atomic level of storage space on the target database, the target database is a physical replica of the source database. Another approach to replicating data is the logical replication approach. Under the logical replication approach, database commands that modify data on the source database are re-executed on the target database. While executing the same database commands guarantees that changes are replicated at the record level, the changes are not replicated at the data block level.
A transaction is a set of operations that change data. In database systems, the operations are specified by one or more database commands. Committing a transaction refers to making the changes for a transaction permanent. Under transaction processing, all the changes for a transaction are made atomically. For each transaction, either all changes are committed, or the transaction is rolled back.
After a transaction is committed on a source database, the transaction may be applied on the target database. As result, there is latency between when a transaction is committed on the source database and when it is applied and committed at the target database. For large transactions, this latency can be very significant. It is desirable to develop an approach that eliminates such latency.